(0) Obligation:

Clauses:

balance(T, TB) :- balance55(T, XX0, XX1, [], .(','(nil, -(XX0, XX0)), XX1), [], .(','(TB, -(I, [])), X), X, I, []).
balance55(nil, C, T, T, A, B, A, B, X, X).
balance55(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT) :- ','(balance55(L, XX0, XX1, .(','(nil, -(XX2, XX2)), XX3), HR1, TR1, H, T, IH, .(V, IT1)), balance55(R, XX2, XX3, NT, HR, TR, HR1, TR1, IT1, IT)).
balance5(nil, C, T, T, A, B, A, B, X, X) :- balance55(nil, C, T, T, A, B, A, B, X, X).
balance5(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT) :- balance55(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT).
balance(nil, -(X, X), -(A, B), -(A, B), -(.(','(nil, -(C, C)), T), T)) :- balance5(nil, C, T, T, A, B, A, B, X, X).
balance(tree(L, V, R), -(IH, IT), -(.(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T))), -(HR, TR), -(.(','(nil, -(XX0, XX0)), XX1), NT)) :- balance5(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT).

Query: balance(g,a)

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph ICLP10.

(2) Obligation:

Clauses:

balance55A(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275).
balance55A(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) :- balance55A(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476).
balance55A(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) :- ','(balance55A(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348), balance55A(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)).
balance55B(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], []).
balance55B(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) :- balance55A(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622).
balance55B(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) :- ','(balance55A(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497), balance55B(T454, T493, T494, T498, T499, T495, T496, T497)).
balance55C(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110).
balance55C(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) :- balance55A(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302).
balance55C(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) :- ','(balance55A(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190), balance55A(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)).
balanceD(nil, nil).
balanceD(tree(T20, T21, T22), tree(T28, T29, T31)) :- balance55C(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119).
balanceD(tree(T20, T21, T22), tree(T28, T29, T31)) :- ','(balance55C(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54), balance55B(T22, T50, T51, T48, T49, T52, T53, T54)).

Query: balanceD(g,a)

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:
balanceD_in: (b,f)
balance55C_in: (b,f,f,f,f,f,f,f,f,f,f,f,f,b,f)
balance55A_in: (b,f,f,f,f,f,f,f,f,f,b,f)
balance55B_in: (b,f,f,f,f,f,f,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

balanceD_in_ga(nil, nil) → balanceD_out_ga(nil, nil)
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
balance55C_in_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110) → balance55C_out_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
U10_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_ga(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
balance55B_in_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], []) → balance55B_out_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], [])
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_out_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
U12_ga(T20, T21, T22, T28, T29, T31, balance55B_out_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))

The argument filtering Pi contains the following mapping:
balanceD_in_ga(x1, x2)  =  balanceD_in_ga(x1)
nil  =  nil
balanceD_out_ga(x1, x2)  =  balanceD_out_ga
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U10_ga(x1, x2, x3, x4, x5, x6, x7)  =  U10_ga(x7)
balance55C_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_in_gaaaaaaaaaaaaga(x1, x14)
balance55C_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_out_gaaaaaaaaaaaaga
U7_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_gaaaaaaaaaaaaga(x21)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
U8_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_gaaaaaaaaaaaaga(x3, x19, x21)
U9_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_gaaaaaaaaaaaaga(x21)
U11_ga(x1, x2, x3, x4, x5, x6, x7)  =  U11_ga(x3, x7)
U12_ga(x1, x2, x3, x4, x5, x6, x7)  =  U12_ga(x7)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
balance55B_out_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_out_gaaaaaaa
U4_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_gaaaaaaa(x17)
U5_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_gaaaaaaa(x3, x17)
U6_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_gaaaaaaa(x17)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

balanceD_in_ga(nil, nil) → balanceD_out_ga(nil, nil)
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
balance55C_in_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110) → balance55C_out_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
U10_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_ga(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
balance55B_in_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], []) → balance55B_out_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], [])
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_out_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
U12_ga(T20, T21, T22, T28, T29, T31, balance55B_out_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))

The argument filtering Pi contains the following mapping:
balanceD_in_ga(x1, x2)  =  balanceD_in_ga(x1)
nil  =  nil
balanceD_out_ga(x1, x2)  =  balanceD_out_ga
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U10_ga(x1, x2, x3, x4, x5, x6, x7)  =  U10_ga(x7)
balance55C_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_in_gaaaaaaaaaaaaga(x1, x14)
balance55C_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_out_gaaaaaaaaaaaaga
U7_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_gaaaaaaaaaaaaga(x21)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
U8_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_gaaaaaaaaaaaaga(x3, x19, x21)
U9_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_gaaaaaaaaaaaaga(x21)
U11_ga(x1, x2, x3, x4, x5, x6, x7)  =  U11_ga(x3, x7)
U12_ga(x1, x2, x3, x4, x5, x6, x7)  =  U12_ga(x7)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
balance55B_out_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_out_gaaaaaaa
U4_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_gaaaaaaa(x17)
U5_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_gaaaaaaa(x3, x17)
U6_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_gaaaaaaa(x17)

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

BALANCED_IN_GA(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_GA(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
BALANCED_IN_GA(tree(T20, T21, T22), tree(T28, T29, T31)) → BALANCE55C_IN_GAAAAAAAAAAAAGA(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)
BALANCE55C_IN_GAAAAAAAAAAAAGA(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_GAAAAAAAAAAAAGA(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
BALANCE55C_IN_GAAAAAAAAAAAAGA(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → BALANCE55A_IN_GAAAAAAAAAGA(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → BALANCE55A_IN_GAAAAAAAAAGA(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → BALANCE55A_IN_GAAAAAAAAAGA(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)
BALANCE55C_IN_GAAAAAAAAAAAAGA(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U8_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → BALANCE55A_IN_GAAAAAAAAAGA(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)
BALANCED_IN_GA(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_GA(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_GA(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_GA(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
U11_GA(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → BALANCE55B_IN_GAAAAAAA(T22, T50, T51, T48, T49, T52, T53, T54)
BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_GAAAAAAA(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → BALANCE55A_IN_GAAAAAAAAAGA(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)
BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → BALANCE55B_IN_GAAAAAAA(T454, T493, T494, T498, T499, T495, T496, T497)

The TRS R consists of the following rules:

balanceD_in_ga(nil, nil) → balanceD_out_ga(nil, nil)
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
balance55C_in_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110) → balance55C_out_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
U10_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_ga(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
balance55B_in_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], []) → balance55B_out_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], [])
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_out_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
U12_ga(T20, T21, T22, T28, T29, T31, balance55B_out_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))

The argument filtering Pi contains the following mapping:
balanceD_in_ga(x1, x2)  =  balanceD_in_ga(x1)
nil  =  nil
balanceD_out_ga(x1, x2)  =  balanceD_out_ga
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U10_ga(x1, x2, x3, x4, x5, x6, x7)  =  U10_ga(x7)
balance55C_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_in_gaaaaaaaaaaaaga(x1, x14)
balance55C_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_out_gaaaaaaaaaaaaga
U7_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_gaaaaaaaaaaaaga(x21)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
U8_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_gaaaaaaaaaaaaga(x3, x19, x21)
U9_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_gaaaaaaaaaaaaga(x21)
U11_ga(x1, x2, x3, x4, x5, x6, x7)  =  U11_ga(x3, x7)
U12_ga(x1, x2, x3, x4, x5, x6, x7)  =  U12_ga(x7)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
balance55B_out_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_out_gaaaaaaa
U4_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_gaaaaaaa(x17)
U5_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_gaaaaaaa(x3, x17)
U6_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_gaaaaaaa(x17)
BALANCED_IN_GA(x1, x2)  =  BALANCED_IN_GA(x1)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x7)
BALANCE55C_IN_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  BALANCE55C_IN_GAAAAAAAAAAAAGA(x1, x14)
U7_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_GAAAAAAAAAAAAGA(x21)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U1_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_GAAAAAAAAAGA(x21)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x3, x19, x21)
U3_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_GAAAAAAAAAGA(x21)
U8_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_GAAAAAAAAAAAAGA(x3, x19, x21)
U9_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_GAAAAAAAAAAAAGA(x21)
U11_GA(x1, x2, x3, x4, x5, x6, x7)  =  U11_GA(x3, x7)
U12_GA(x1, x2, x3, x4, x5, x6, x7)  =  U12_GA(x7)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U4_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_GAAAAAAA(x17)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x3, x17)
U6_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_GAAAAAAA(x17)

We have to consider all (P,R,Pi)-chains

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCED_IN_GA(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_GA(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
BALANCED_IN_GA(tree(T20, T21, T22), tree(T28, T29, T31)) → BALANCE55C_IN_GAAAAAAAAAAAAGA(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)
BALANCE55C_IN_GAAAAAAAAAAAAGA(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_GAAAAAAAAAAAAGA(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
BALANCE55C_IN_GAAAAAAAAAAAAGA(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → BALANCE55A_IN_GAAAAAAAAAGA(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → BALANCE55A_IN_GAAAAAAAAAGA(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → BALANCE55A_IN_GAAAAAAAAAGA(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)
BALANCE55C_IN_GAAAAAAAAAAAAGA(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U8_GAAAAAAAAAAAAGA(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → BALANCE55A_IN_GAAAAAAAAAGA(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)
BALANCED_IN_GA(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_GA(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_GA(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_GA(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
U11_GA(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → BALANCE55B_IN_GAAAAAAA(T22, T50, T51, T48, T49, T52, T53, T54)
BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_GAAAAAAA(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → BALANCE55A_IN_GAAAAAAAAAGA(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)
BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → BALANCE55B_IN_GAAAAAAA(T454, T493, T494, T498, T499, T495, T496, T497)

The TRS R consists of the following rules:

balanceD_in_ga(nil, nil) → balanceD_out_ga(nil, nil)
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
balance55C_in_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110) → balance55C_out_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
U10_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_ga(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
balance55B_in_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], []) → balance55B_out_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], [])
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_out_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
U12_ga(T20, T21, T22, T28, T29, T31, balance55B_out_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))

The argument filtering Pi contains the following mapping:
balanceD_in_ga(x1, x2)  =  balanceD_in_ga(x1)
nil  =  nil
balanceD_out_ga(x1, x2)  =  balanceD_out_ga
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U10_ga(x1, x2, x3, x4, x5, x6, x7)  =  U10_ga(x7)
balance55C_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_in_gaaaaaaaaaaaaga(x1, x14)
balance55C_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_out_gaaaaaaaaaaaaga
U7_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_gaaaaaaaaaaaaga(x21)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
U8_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_gaaaaaaaaaaaaga(x3, x19, x21)
U9_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_gaaaaaaaaaaaaga(x21)
U11_ga(x1, x2, x3, x4, x5, x6, x7)  =  U11_ga(x3, x7)
U12_ga(x1, x2, x3, x4, x5, x6, x7)  =  U12_ga(x7)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
balance55B_out_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_out_gaaaaaaa
U4_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_gaaaaaaa(x17)
U5_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_gaaaaaaa(x3, x17)
U6_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_gaaaaaaa(x17)
BALANCED_IN_GA(x1, x2)  =  BALANCED_IN_GA(x1)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x7)
BALANCE55C_IN_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  BALANCE55C_IN_GAAAAAAAAAAAAGA(x1, x14)
U7_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_GAAAAAAAAAAAAGA(x21)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U1_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_GAAAAAAAAAGA(x21)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x3, x19, x21)
U3_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_GAAAAAAAAAGA(x21)
U8_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_GAAAAAAAAAAAAGA(x3, x19, x21)
U9_GAAAAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_GAAAAAAAAAAAAGA(x21)
U11_GA(x1, x2, x3, x4, x5, x6, x7)  =  U11_GA(x3, x7)
U12_GA(x1, x2, x3, x4, x5, x6, x7)  =  U12_GA(x7)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U4_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_GAAAAAAA(x17)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x3, x17)
U6_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_GAAAAAAA(x17)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 15 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → BALANCE55A_IN_GAAAAAAAAAGA(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → BALANCE55A_IN_GAAAAAAAAAGA(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)

The TRS R consists of the following rules:

balanceD_in_ga(nil, nil) → balanceD_out_ga(nil, nil)
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
balance55C_in_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110) → balance55C_out_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
U10_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_ga(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
balance55B_in_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], []) → balance55B_out_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], [])
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_out_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
U12_ga(T20, T21, T22, T28, T29, T31, balance55B_out_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))

The argument filtering Pi contains the following mapping:
balanceD_in_ga(x1, x2)  =  balanceD_in_ga(x1)
nil  =  nil
balanceD_out_ga(x1, x2)  =  balanceD_out_ga
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U10_ga(x1, x2, x3, x4, x5, x6, x7)  =  U10_ga(x7)
balance55C_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_in_gaaaaaaaaaaaaga(x1, x14)
balance55C_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_out_gaaaaaaaaaaaaga
U7_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_gaaaaaaaaaaaaga(x21)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
U8_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_gaaaaaaaaaaaaga(x3, x19, x21)
U9_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_gaaaaaaaaaaaaga(x21)
U11_ga(x1, x2, x3, x4, x5, x6, x7)  =  U11_ga(x3, x7)
U12_ga(x1, x2, x3, x4, x5, x6, x7)  =  U12_ga(x7)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
balance55B_out_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_out_gaaaaaaa
U4_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_gaaaaaaa(x17)
U5_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_gaaaaaaa(x3, x17)
U6_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_gaaaaaaa(x17)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x3, x19, x21)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_GAAAAAAAAAGA(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → BALANCE55A_IN_GAAAAAAAAAGA(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → BALANCE55A_IN_GAAAAAAAAAGA(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)

The TRS R consists of the following rules:

balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)

The argument filtering Pi contains the following mapping:
nil  =  nil
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x3, x19, x21)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T320) → U2_GAAAAAAAAAGA(T308, T320, balance55A_in_gaaaaaaaaaga(T306, T307))
U2_GAAAAAAAAAGA(T308, T320, balance55A_out_gaaaaaaaaaga) → BALANCE55A_IN_GAAAAAAAAAGA(T308, T320)
BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T320) → BALANCE55A_IN_GAAAAAAAAAGA(T306, T307)

The TRS R consists of the following rules:

balance55A_in_gaaaaaaaaaga(nil, T274) → balance55A_out_gaaaaaaaaaga
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T320) → U1_gaaaaaaaaaga(balance55A_in_gaaaaaaaaaga(T306, T307))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T320) → U2_gaaaaaaaaaga(T308, T320, balance55A_in_gaaaaaaaaaga(T306, T307))
U1_gaaaaaaaaaga(balance55A_out_gaaaaaaaaaga) → balance55A_out_gaaaaaaaaaga
U2_gaaaaaaaaaga(T308, T320, balance55A_out_gaaaaaaaaaga) → U3_gaaaaaaaaaga(balance55A_in_gaaaaaaaaaga(T308, T320))
U3_gaaaaaaaaaga(balance55A_out_gaaaaaaaaaga) → balance55A_out_gaaaaaaaaaga

The set Q consists of the following terms:

balance55A_in_gaaaaaaaaaga(x0, x1)
U1_gaaaaaaaaaga(x0)
U2_gaaaaaaaaaga(x0, x1, x2)
U3_gaaaaaaaaaga(x0)

We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U2_GAAAAAAAAAGA(T308, T320, balance55A_out_gaaaaaaaaaga) → BALANCE55A_IN_GAAAAAAAAAGA(T308, T320)
    The graph contains the following edges 1 >= 1, 2 >= 2

  • BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T320) → BALANCE55A_IN_GAAAAAAAAAGA(T306, T307)
    The graph contains the following edges 1 > 1, 1 > 2

  • BALANCE55A_IN_GAAAAAAAAAGA(tree(T306, T307, T308), T320) → U2_GAAAAAAAAAGA(T308, T320, balance55A_in_gaaaaaaaaaga(T306, T307))
    The graph contains the following edges 1 > 1, 2 >= 2

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → BALANCE55B_IN_GAAAAAAA(T454, T493, T494, T498, T499, T495, T496, T497)

The TRS R consists of the following rules:

balanceD_in_ga(nil, nil) → balanceD_out_ga(nil, nil)
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U10_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119))
balance55C_in_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110) → balance55C_out_gaaaaaaaaaaaaga(nil, X219, .(','(nil, -(X221, X221)), X222), X221, X222, .(','(T103, -(.(T109, T110), .(T105, T106))), .(','(T107, -(T106, [])), T108)), T108, T103, .(T109, T110), T105, T106, T107, T108, T109, T110)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302))
balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U7_gaaaaaaaaaaaaga(T139, T140, T141, X303, X304, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, X303, X304, X298, X299, X300, X301, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, X302)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), X303, X304, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
balance55C_in_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309) → U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190))
U8_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T139, T184, T185, T186, T187, T188, T189, .(','(T155, -(T156, [])), .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153))), T153, T154, T140, T190)) → U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_in_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309))
U9_gaaaaaaaaaaaaga(T139, T140, T141, T184, T185, X305, X306, X307, X308, T157, T158, T160, T154, T161, T156, T155, T159, T153, T152, X309, balance55A_out_gaaaaaaaaaga(T141, T186, T187, X305, X306, X307, X308, T188, T189, T190, T152, X309)) → balance55C_out_gaaaaaaaaaaaaga(tree(T139, T140, T141), T184, T185, X305, X306, X307, X308, tree(T157, T158, T160), T154, T161, T156, T155, .(','(T157, -(T154, .(T158, T159))), .(','(T160, -(T159, .(T161, T156))), T153)), T152, X309)
U10_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, X120, X121, X115, X116, X117, X118, T28, T27, T29, T30, T31, T26, T21, X119)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))
balanceD_in_ga(tree(T20, T21, T22), tree(T28, T29, T31)) → U11_ga(T20, T21, T22, T28, T29, T31, balance55C_in_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54))
U11_ga(T20, T21, T22, T28, T29, T31, balance55C_out_gaaaaaaaaaaaaga(T20, T48, T49, T50, T51, T52, T53, T28, T27, T29, T30, T31, T26, T21, T54)) → U12_ga(T20, T21, T22, T28, T29, T31, balance55B_in_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54))
balance55B_in_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], []) → balance55B_out_gaaaaaaa(nil, T415, [], T417, T418, .(','(nil, -(T417, T417)), T418), [], [])
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622))
U4_gaaaaaaa(T452, T453, T454, T468, T469, T474, T473, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, X618, X619, X620, X621, T470, T471, T472, T453, X622)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T474, T473, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
balance55B_in_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_in_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497))
U6_gaaaaaaa(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55B_out_gaaaaaaa(T454, T493, T494, T498, T499, T495, T496, T497)) → balance55B_out_gaaaaaaa(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472)
U12_ga(T20, T21, T22, T28, T29, T31, balance55B_out_gaaaaaaa(T22, T50, T51, T48, T49, T52, T53, T54)) → balanceD_out_ga(tree(T20, T21, T22), tree(T28, T29, T31))

The argument filtering Pi contains the following mapping:
balanceD_in_ga(x1, x2)  =  balanceD_in_ga(x1)
nil  =  nil
balanceD_out_ga(x1, x2)  =  balanceD_out_ga
tree(x1, x2, x3)  =  tree(x1, x2, x3)
U10_ga(x1, x2, x3, x4, x5, x6, x7)  =  U10_ga(x7)
balance55C_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_in_gaaaaaaaaaaaaga(x1, x14)
balance55C_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55C_out_gaaaaaaaaaaaaga
U7_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U7_gaaaaaaaaaaaaga(x21)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
U8_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U8_gaaaaaaaaaaaaga(x3, x19, x21)
U9_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U9_gaaaaaaaaaaaaga(x21)
U11_ga(x1, x2, x3, x4, x5, x6, x7)  =  U11_ga(x3, x7)
U12_ga(x1, x2, x3, x4, x5, x6, x7)  =  U12_ga(x7)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
balance55B_out_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_out_gaaaaaaa
U4_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_gaaaaaaa(x17)
U5_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_gaaaaaaa(x3, x17)
U6_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_gaaaaaaa(x17)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x3, x17)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454), T468, T469, T498, T499, .(','(tree(T459, T460, T461), -(T462, T463)), T470), .(','(T459, -(T462, .(T460, T465))), .(','(T461, -(T465, T463)), T471)), T472) → U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_in_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497))
U5_GAAAAAAA(T452, T453, T454, T468, T469, T498, T499, T459, T460, T461, T462, T463, T470, T465, T471, T472, balance55A_out_gaaaaaaaaaga(T452, T468, T469, T493, T494, T495, T496, T470, T471, T472, T453, T497)) → BALANCE55B_IN_GAAAAAAA(T454, T493, T494, T498, T499, T495, T496, T497)

The TRS R consists of the following rules:

balance55A_in_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275) → balance55A_out_gaaaaaaaaaga(nil, T267, .(','(nil, -(T269, T269)), T270), T269, T270, T271, T272, T271, T272, .(T274, T275), T274, T275)
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481) → U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348))
U1_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, X472, X473, X474, X475, T323, T324, T325, T307, X476)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)
U2_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T306, T321, T322, T344, T345, T346, T347, T323, T324, T325, T307, T348)) → U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_in_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481))
U3_gaaaaaaaaaga(T306, T307, T308, T321, T322, X477, X478, X479, X480, T311, T312, T313, T314, T315, T323, T317, T324, T325, T320, X481, balance55A_out_gaaaaaaaaaga(T308, T344, T345, X477, X478, X479, X480, T346, T347, T348, T320, X481)) → balance55A_out_gaaaaaaaaaga(tree(T306, T307, T308), T321, T322, X477, X478, X479, X480, .(','(tree(T311, T312, T313), -(T314, T315)), T323), .(','(T311, -(T314, .(T312, T317))), .(','(T313, -(T317, T315)), T324)), T325, T320, X481)

The argument filtering Pi contains the following mapping:
nil  =  nil
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55A_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_out_gaaaaaaaaaga
U1_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_gaaaaaaaaaga(x21)
U2_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_gaaaaaaaaaga(x3, x19, x21)
U3_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_gaaaaaaaaaga(x21)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x3, x17)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454)) → U5_GAAAAAAA(T454, balance55A_in_gaaaaaaaaaga(T452, T453))
U5_GAAAAAAA(T454, balance55A_out_gaaaaaaaaaga) → BALANCE55B_IN_GAAAAAAA(T454)

The TRS R consists of the following rules:

balance55A_in_gaaaaaaaaaga(nil, T274) → balance55A_out_gaaaaaaaaaga
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T320) → U1_gaaaaaaaaaga(balance55A_in_gaaaaaaaaaga(T306, T307))
balance55A_in_gaaaaaaaaaga(tree(T306, T307, T308), T320) → U2_gaaaaaaaaaga(T308, T320, balance55A_in_gaaaaaaaaaga(T306, T307))
U1_gaaaaaaaaaga(balance55A_out_gaaaaaaaaaga) → balance55A_out_gaaaaaaaaaga
U2_gaaaaaaaaaga(T308, T320, balance55A_out_gaaaaaaaaaga) → U3_gaaaaaaaaaga(balance55A_in_gaaaaaaaaaga(T308, T320))
U3_gaaaaaaaaaga(balance55A_out_gaaaaaaaaaga) → balance55A_out_gaaaaaaaaaga

The set Q consists of the following terms:

balance55A_in_gaaaaaaaaaga(x0, x1)
U1_gaaaaaaaaaga(x0)
U2_gaaaaaaaaaga(x0, x1, x2)
U3_gaaaaaaaaaga(x0)

We have to consider all (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U5_GAAAAAAA(T454, balance55A_out_gaaaaaaaaaga) → BALANCE55B_IN_GAAAAAAA(T454)
    The graph contains the following edges 1 >= 1

  • BALANCE55B_IN_GAAAAAAA(tree(T452, T453, T454)) → U5_GAAAAAAA(T454, balance55A_in_gaaaaaaaaaga(T452, T453))
    The graph contains the following edges 1 > 1

(22) YES